package com.zhiyou100.www.web.downloads;

import java.util.ArrayList;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HttpUtil;

import java.util.List;

/**
 * @packageName: Test
 * @className: com.zhiyou100.www.dealing.strings
 * @Description: TODO 获取壁纸
 * @author: yang
 * @date: 6/14/20
 */
public class Test {
    public static void main(String[] args) {
//        String s = HttpUtil.get("https://wallhaven.cc/toplist?page=2");
//        System.out.println(s);
        // "https://wallhaven.cc/toplist?page=1"
        int max = 1;
        for (int i = 0; i <= max; i++) {
            String url = "https://wallhaven.cc/toplist?page=" + i;
            getImages(url);
        }


    }

    /**
     * @Description: TODO 根据传入的 url，下载 壁纸到 指定位置
     * @name: getImages
     * @param: [url]
     * @return: void
     * @date: 6/16/20 16:02
     * @author: yang
     */
    public static void getImages(String url) {
        String listContent = HttpUtil.get(url);
        // 壁纸 首页 地址


        //使用正则获取所有标题
        List<String> titles =
                ReUtil.findAll("<a class=\"preview\" href=\"(.*?)\""
                        , listContent,
                        1);
        // <a class="preview" href="https://wallhaven.cc/w/eymzjk" target="_blank" title="" style=""></a>

        List<String> images = new ArrayList<String>();
        // 放置图片地址的list


        for (String title : titles) {
            // 遍历标题
            String s1 = HttpUtil.get(title);
            List<String> all = ReUtil.findAll("<img id=\"wallpaper\" src=\"(.*?)\"", s1, 1);
            // <img id="wallpaper" src="https://w.wallhaven.cc/full/13/wallhaven-13vym3.jpg"
            // 使用正则，获取所有的图片链接地址
            assert false;
            images.addAll(all);
            // 添加到 图片链接 集合
        }


        for (String image : images) {
            // 下载地址
            long size = HttpUtil.downloadFile(image, FileUtil.file("/Volumes/myFiles/mac/backgrounds"));
            //将文件下载后保存在 /Users/yang/Documents/git/macBackground ，返回结果为下载文件大小
            System.out.println("Download size: " + size / 1024.0 / 1024.0 + " MB");
        }
    }
}
